#ifndef MAP_H
#define MAP_H
#include "rb_tree.h"
#include <utility>
#include <functional>

template <class Key, class T,
          class Compare = less<Key>,
          class Alloc = alloc>
class Map {
public:
    typedef Key key_type;
    typedef T data_type;
    typedef pair<const Key, T> value_type;//通过const key 来限制 key 不能被外界修改
    typedef Compare key_compare;
private:
    typedef rb_tree<key_type, value_type, select1st<value_type>,
        key_compare, Alloc> rep_type;

    rep_type t;
public:
    typedef typename rep_type::iterator iterator;

};



#endif // MAP_H
